Chat marking and synchronization

ABSTRACT

The invention is a demand-based messaging system that enables a user to mark any location in a message and share the mark with a second user. The invention comprises a messaging program operable on a plurality of computers connected by one or more communications media. The program configures a first computer to accept message data, including markers and links, from a user. A marker identifies a specific location within message data, and a link refers to a specific marker within message data. The program further configures the first computer to transfer message data to a second computer. The program further configures the second computer to display the message data as it is received, and to synchronize the display with a marker when a user activates a link that refers to the marker.

CROSS-REFERENCE TO RELATED APPLICATION

The present invention is related to the subject matter of U.S. patent application Ser. No. ______ (Attorney Docket number AUS920031072US1), incorporated herein by reference.

FIELD OF THE INVENTION

The present invention is a process for using electrical computers or data processing machines to transfer data via one or more communications media. In particular, the present invention comprises an improved demand-based messaging system that enables instant message marking and synchronization.

BACKGROUND OF THE INVENTION

Demand-based messaging is a communication service that allows users to exchange message data, such as text, over a network or other communications media, in real time. Probably the most common medium for exchange is the Internet, but as wireless phone networks continue to expand, their popularity for text messaging is also expanding. U.S. Pat. No. 6,301,609 issued to Aravamudun et al. and U.S. patent application No. 2002/0035605, for example, illustrate the move toward an exchange medium that unifies traditional and wireless communications. Instant messaging (IM) is perhaps the most widely known and used embodiment of demand-based messaging. Today, most network and online service providers offer some form of IM service. IM sessions (colloquially referred to as “chats”) are often lengthy, with multiple participants each taking many turns “speaking” in the chat window.

IM users typically use a networked computer and IM client software to exchange messages with one another in conversational style. An IM client provides an interface for users to compose, send, receive, and read text messages. Examples of IM clients that are popular today include IBM's SameTime, MSN Messenger, and Yahoo/AOL Instant Messenger. Web-based interfaces are also gaining popularity, as illustrated in U.S. Pat. No. 6,651,086 issued to Manber et al., which describes how a user can join conversations about topics that are presented as web content.

In a graphical display, an IM client usually includes at least two windows: a window for composing and sending messages, and a window for displaying messages as users take turns sending and receiving them. It is common for one user to have multiple IM chats running simultaneously, usually in separate windows. Chats may include simple information shared by two workers scheduling a meeting, or they may contain complex discussions regarding proprietary information and critical decisions that keep a project moving forward. Chats also may contain a high degree of historical data and proprietary knowledge that is useful not only to the participants, but to other people within the organization that did not participate in the chat.

Chat transcripts frequently reveal that users spend at least some portion of a chat trying to locate specific statements already made in the current chat, or perhaps in a prior chat. Alternatively, IM users may engage simultaneously in a chat and a phone conversation, and the phone conversation may turn to locating and sharing chat information. U.S. patent application No. 2004/0037406, for example, discloses a method and system for distributing instant messages to conference call participants. IM users often need to refer back to information that they have sent already in one or more prior messages. Just as often, IM users need to share that information with other users (perhaps in other chats).

Current IM implementations fail to address adequately this need to locate and share chat information. Consequently, current IM users must scroll through chat windows (which may be hundreds of lines long) or use the IM client's limited search capability to find specific information. Either of these techniques for locating specific information can prove difficult, cumbersome, and time-consuming. Furthermore, both techniques lack the precision necessary to avoid misunderstandings about specific references. For example, if one user desires to share a specific portion of a chat with other users, then that user must describe the location precisely, or the other users must search for the location, or both. If the users want to confirm that they have located the correct information, then they must describe the information they found. Without that confirmation, there is no certainty that the users have accurately communicated the location of the chat. Additional problems arise when users have different size chat windows, or have joined chats at different points. Clearly, the known solutions to sharing chat information create communication ambiguities and divert conversational resources from intended topics.

Thus, there is a need to advance the state of the art of instant messaging to overcome the current shortcomings inherent in sharing chat information. In particular, IM users need an effective means for referring to and sharing specific information. The ideal IM solution will enable an IM user to mark a specific location within an instant message, share the message mark with another user, and synchronize a chat window with the message mark.

These and other objects of the invention will be apparent to those skilled in the art from the following detailed description of a preferred embodiment of the invention.

SUMMARY OF THE INVENTION

The invention disclosed herein is a demand-based messaging system that enables a user to mark any location in a message and share the mark with a second user.

The inventive demand-based messaging system comprises a messaging program operable on a plurality of electrical computers or data processing machines connected by one or more communications media. The messaging program comprises a message composer program, a message transport program, and a message reader program.

The message composer program configures each computer to accept message data, including markers and links, from a user. A marker identifies a specific location within message data, and a link refers to a specific marker within a message. The preferred embodiment of the message composer program further configures each computer to insert a marker at the beginning of the message data, without a user's explicit request.

The message transport program configures each computer to send message data over the communications media to other computers, and to receive message data sent by other computers over the communication media.

The message reader program configures each computer to display message data, including markers and links, as the message transport program receives it. The preferred embodiment of the message reader program further configures each computer to accept a request from a user to synchronize the display with a marker, and to respond to such a request by displaying the marker and surrounding message data.

BRIEF DESCRIPTION OF DRAWINGS

The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:

FIG. 1 illustrates the internal configuration of a computer having the computer program of the present invention loaded into memory;

FIG. 2 illustrates a prior art architecture for connecting various hardware devices to create a network for transferring data;

FIG. 3 provides a functional overview of the present invention;

FIG. 4 illustrates an exemplar graphical user interface to the present invention;

FIG. 5 illustrates an exemplar graphical user interface displayed on a recipient's computer after receiving a message with a link;

FIG. 6 illustrates an embodiment of a synchronized graphical user interface;

FIG. 7 illustrates an alternative embodiment of a synchronized graphical user interface; and

FIG. 8 illustrates the use of the present invention to link to prior messaging sessions or messaging sessions with other users.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

A person of ordinary skill in the art will appreciate that the present invention may be implemented in a variety of software and hardware configurations. It is believed, however, that the invention is described best as a computer program that configures and enables one or more general-purpose computers to implement the novel aspects of the invention. As used herein, the term “computer” includes, without limitation, any machine that is capable of processing data and performing logic operations according to a predefined set of instructions.

The internal configuration of a computer, including connection and orientation of the processor, memory, and input/output devices, is well known in the art. FIG. 1 represents the internal configuration of a computer having the computer program of the present invention loaded into memory 100. The computer program of the present invention is depicted as messaging program 120, which comprises message composer program (“Composer”) 130, message transport program (MTP) 140, and message reader program (“Reader”) 150. Memory 100 is only illustrative of memory within a computer and is not meant as a limitation. Memory 100 also contains resource data 110. The present invention may interface with resource data 110 through memory 100.

In alternative embodiments, messaging program 120 and its components can be stored in the memory of other computers. Storing messaging program 120 in the memory of other computers allows the processor workload to be distributed across a plurality of processors instead of a single processor. Further configurations of messaging program 120 across various multiple memories and processors are known by persons skilled in the art.

FIG. 2 illustrates a common prior art architecture for connecting various hardware devices to create a network for transferring data. Computer network 200 comprises local workstation 201 electrically coupled to network connection 202. In FIG. 2, local workstation 201 is coupled electrically to remote workstation 203 via network connection 202. Local workstation 201 also is coupled electrically to server 204 and persistent storage 206 via network connection 202. Network connection 202 may be a simple local area network (LAN) or may be a larger wide area network (WAN), such as the Internet. While computer network 200 depicted in FIG. 2 is intended to represent a possible network architecture, it is not intended to represent an architectural limitation.

Messaging program 120 described herein can be stored within memory 100 of any workstation or server depicted in FIG. 2. Alternatively, messaging program 120 can be stored in an external storage device such as persistent storage 106, or a removable disk such as a CD-ROM not pictured). Additionally, messaging program 120, as described in detail below, is generally loaded into the memory of more than one computer of FIG. 2 to enable users on different computers to exchange messages over network connection 202.

FIG. 3 provides a functional overview of messaging program 120, as it interacts with a first user sending a message to a second user over a computer network. Messaging program 120 is loaded into the memory of both users' computers. Composer 130 accepts message data from the first user (305), and then, upon the first user's request, MTP 140 locates the second user's computer on the network and transfers the message data to the second user's computer (310). MTP 140 on the second user's computer then notifies Reader 150 of incoming message data (315), and Reader 150 displays the incoming message data to the second user (320). Alternatively, MTP 140 transfers the message data to a messaging server (not shown), and MTP 140 on the second user's computer retrieves the message data from the messaging server program. Those skilled in the art will appreciate that many similar functional variations are possible and not all are described here.

FIG. 4 illustrates an exemplary graphical user interface (GUI) 400 to messaging program 120. GUI 400 comprises a combination of several prior art elements, along with several inventive elements. The prior art elements include title bar 405, menu bar 410, scroll bar 415, display window 420, input window 425, and control buttons 430 and 435. Display window 420 depicts a series of messages that users Sarah, Tom, Dave, Mary, and Joe have exchanged in a fictional instant messaging session. Input window 425 depicts a message that Joe has typed, but not sent, in response to Sarah's last message. The inventive elements in GUI 400 include message markers 440 and message link 445. As used herein, a “message marker” is any means of identifying a specific location within message data. A “location,” as that term is used herein, includes without limitation any individual word, phrase, turn, or sub-turn. A “message link” is any means of identifying a specific marker within message data, and can be represented by text or graphic symbols including, without limitation, hypertext links or icons.

Composer 130 configures a computer to accept message data, including markers and links, from a user, and then to insert the markers and links into the message data as requested by the user. The preferred embodiment of Composer 130 further configures a computer to insert a marker at the beginning of the message data, without a user's explicit request, as depicted by each message marker 440 in FIG. 4. Each message marker 440 identifies a specific location within the series of messages, and in alternative embodiments, also may identify the message sender. Composer 130 preferably represents message marker 440 in a standard format, such as Extensible Markup Language (XML), but a person of skill in the art will appreciate that, in addition to or in the alternative, Composer 130 may use any format that Reader 150 can understand. In FIG. 4, each message marker 440 is visible in display window 420, but in general, message markers need not be visible to be usable. A message link identifies a specific marker within the series of messages. Exemplary message link 445 in FIG. 4 refers to message marker 441. In the preferred embodiment, a user may specify which message markers should be sent to which recipients, and a recipient likewise may choose to accept or reject any link to a message marker. As discussed in detail below, a recipient of message link 445 will be able to select the link in the recipient's display window, and Reader 150 will instantaneously display message marker 441 and the surrounding messages.

Composer 130 further configures a computer to accept transfer instructions from a user. Send button 430 in FIG. 4 is an exemplary interface that allows a user to instruct Composer 130 to transfer the message data in input window 425 to another computer. Thus, when a user activates send button 430, Composer 130 relays the instructions to MTP 140. MTP 140 configures a computer to send the message data over network connection 202 to other computers, and to receive message data sent by other computers over network connection 202.

MTP 140 transfers the message data over network connection 202 to one or more computers being used by one or more recipient users specified by the message sender. Once MTP 140 transfers the message data to the recipient user's computers, Reader 150 on each recipient's computer causes the computer to display the message data, including markers and links, as MTP 140 receives the data.

FIG. 5 illustrates GUI 500 displayed by a recipient's computer after the user has sent the message in input window 425 of FIG. 4. As depicted in FIG. 5, GUI 500 comprises the same elements as GUI 400 in FIG. 4, but a person of skill in the art will appreciate that GUIs are highly customizable and may not be identical. The last line of display window 505 comprises message data 510, which includes message marker 515, and message link 520. When a user activates message link 520, Reader 150 synchronizes a display window with message marker 515. As used here, the term “synchronize” refers to the act of causing a display window to display a specific message marker in response to a user activating a message link that refers to the specific message marker. A display window may be synchronized with a message marker by either scrolling the active display window to a message marker or creating a new display window and scrolling the new display window to the message marker. Thus, in FIG. 5, Reader 150 causes display window 505 to display message marker 515 either as illustrated in FIG. 6 or as in FIG. 7.

FIG. 5 depicts a single message link, but a person of skill in the art will appreciate that a user may exchange multiple message links within the course of an IM session. Thus, in alternative embodiments, Reader 150 tracks each message link and displays a list of all message links for the user. The user can then choose to activate a message link from the displayed list. When a user activates a message link in the displayed list, Reader 150 synchronizes a display window with the corresponding message marker, substantially as described above. Alternatively, the user can configure Reader 150 to display the original message link in the display window. A person of skill in the art will appreciate that Reader 150 can further be configured to allow the user to sort such a list of message links by any available attributes.

Messaging program 120 optionally may configure a computer to save message data in a database or other repository, such as the repository system disclosed in U.S. patent application Ser. No. ______. Using such a repository system has the additional advantage of enabling links that refer to message markers from prior sessions or sessions with different users.

In FIG. 8, for example, user Joe has exchanged messages with several other users on a previous occasion, as depicted in display window 805. Messaging program 120 has stored these messages in repository 810. User Sarah, who did not participate in the prior messaging session, now needs information that can be found in the prior messages. In input window 815, user Joe can insert message link 820 into a message that refers Sarah to message marker 825, which is stored in repository 810. Joe also can grant appropriate permissions, within message link 820, for Sarah to access message marker 825. Note that FIG. 8 illustrates Sarah initiating a new messaging session with user Joe and asking Joe a question, but a person of skill in the art will appreciate that Sarah could have called Joe to ask the question, and Joe could have initiated a messaging session with Sarah in order to insert message link 820. When user Sarah subsequently activates message link 820, Reader 150 locates the messaging session that contains message marker 825, and displays the message marker and associated messages as discussed above and illustrated in FIG. 6 and FIG. 7.

Alternative embodiments of the present invention include integrating message markers and message links with other conventional applications, including without limitation email clients, word processors, spreadsheet programs, file viewers, or web browsers. In such embodiments, Composer 130 configures a computer to accept message links from a user and then to insert the links into the application data, rather than message data. When a user activates a message link within the application, Reader 150 opens a new GUI to messaging program 120 and synchronizes the display window with the corresponding message marker.

A preferred form of the invention has been shown in the drawings and described above, but variations in the preferred form will be apparent to those skilled in the art. The preceding description is for illustration purposes only, and the invention should not be construed as limited to the specific form shown and described. The scope of the invention should be limited only by the language of the following claims. 

1. A demand-based messaging system comprising: a plurality of data processing machines; one or more communications media; a demand-based messaging program operable on a first data processing machine; means for entering message data into the messaging program; means for inserting a message marker into the message data; means for inserting a message link into the message data; means for transferring the message data from the first data processing machine to a second data processing machine via one or more of the communications media; and means for displaying the message data on the second data processing machine; whereby a first user can mark any location in the message and share the mark with a second user.
 2. The demand-based messaging system of claim 1 wherein: the second data processing machine has a memory containing stored message data, the stored message data containing at least one stored message marker; and the message link refers to any of the stored message markers.
 3. The demand-based messaging system of claim 2 further comprising: means for synchronizing the message data displayed on the second processing machine in response to the second user activating the message link; whereby the message data displayed on the second processing machine includes the stored message marker to which the message link refers.
 4. The demand-based messaging system of claim 1 wherein at least one data processing machine is an electrical computer.
 5. The demand-based messaging system of claim 1 wherein at least one communications media is a computer network.
 6. The demand-based messaging system of claim 1 wherein the means for entering message data comprises: an input device connected to the first data processing machine; and a graphical user interface operable with the messaging program that configures the first data processing machine to accept signals from the input device.
 7. The demand-based messaging system of claim 5 wherein the input device comprises a keyboard.
 8. The demand-based messaging system of claim 5 wherein the input device comprises a mouse.
 9. The demand-based messaging system of claim 1 wherein the means for inserting the message marker comprises: an input device connected to the first data processing machine; and a graphical user interface operable with the messaging program that configures the first data processing machine to accept signals from the input device.
 10. The demand-based messaging system of claim 8 wherein the input device comprises a keyboard.
 11. The demand-based messaging system of claim 8 wherein the input device comprises a mouse.
 12. The demand-based messaging system of claim 1 wherein the means for inserting the message link comprises: an input device connected to the first data processing machine; and a graphical user interface operable with the messaging program that configures the first data processing machine to accept signals from the input device.
 13. The demand-based messaging system of claim 11 wherein the input device comprises a keyboard.
 14. The demand-based messaging system of claim 11 wherein the input device comprises a mouse.
 15. The demand-based messaging system of claim 1 wherein the message marker comprises data that identifies a specific location within the message data.
 16. The demand-based messaging system of claim 1 wherein the message marker comprises data that identifies the first user.
 17. The demand-based messaging system of claim 1 wherein the means for transferring the message data from the first data processing machine to the second data processing machine comprises: a first message transfer program operable with the first data processing machine; a second message transfer program operable with the second data processing machine; and the first message transfer program causes the first data processing machine to transfer the message data to the second message transfer program on the second data processing machine.
 18. The demand-based messaging system of claim 17 wherein: the second message transfer program causes the second data processing machine to accept input from the second user; and the second user enters data instructing the second data processing machine to accept or reject the message link.
 19. The demand-based messaging system of claim 1 wherein the means for transferring the message data from the first data processing machine to the second data processing machine comprises: a first message transfer program operable with the first data processing machine; a second message transfer program operable with the second data processing machine; a third data processing machine; the first message transfer program causes the first data processing machine to transfer the message data to the third data processing machine; and the second message transfer program causes the second data processing machine to retrieve the message data from the third processing machine.
 20. The demand-based messaging system of claim 19 wherein: the second message transfer program causes the second data processing machine to accept input from the second user; and the second user enters data instructing the second data processing machine to accept or reject the message link.
 21. The demand-based messaging system of claim 1 wherein the means for displaying the message data on the second data processing machine is an output device connected to the second data processing machine.
 22. The demand-based messaging system of claim 3 wherein the means for displaying the message data on the second data processing machine is an output device connected to the second data processing machine.
 23. The demand-based messaging system of claim 22 wherein the output device is a computer display terminal.
 24. The demand-based messaging system of claim 23 wherein the means for displaying the message data further comprises a graphical user interface operable with the messaging program.
 25. The demand-based messaging system of claim 24 wherein the graphical user interface comprises a display window rendered on the computer display terminal.
 26. The demand-based messaging system of claim 25 wherein the means for synchronizing comprises a message reader program that causes the second data processing machine to display the stored message marker in the display window.
 27. The demand-based messaging system of claim 26 wherein the means for synchronizing comprises a message reader program that causes the second data processing machine to display the stored message marker in a second display window.
 28. The demand-based messaging system of claim 26 wherein the message reader program further causes the second data processing machine to display the message link in a second display window.
 29. The demand-based messaging system of claim 27 wherein the message reader program further causes the second data processing machine to display the message link in a third display window.
 30. The demand-based messaging system of claim 28 wherein the message reader program further causes the second data processing machine to sort more than one displayed message link according to the second user's instructions.
 31. The demand-based messaging system of claim 29 wherein the message reader program further causes the second data processing machine to sort more than one displayed message link according to the second user's instructions.
 32. A process for using one or more communications media to transfer data from a first data processing machine to a second data processing machine, the process comprising the steps of: entering message data from a sender into the first processing machine; inserting a message marker into the message data; sending the message data to the second data processing machine via one or more communication media, the second data processing machine having an output device; and displaying the message data on the output device.
 33. The process of claim 32 further comprising the step of inserting a message link into the message data before sending the message data to the second data processing machine, wherein the message link refers to any message marker stored in a memory of the second data processing machine.
 34. The process of claim 33 wherein the displaying step comprises rendering the message data in a display window of a graphical user interface on the output device.
 35. The process of claim 34 further comprising the steps of: activating the message link; and synchronizing the message data displayed on the output device with any message marker to which the message link refers.
 36. The process of claim 35 wherein the synchronizing step comprises displaying in the display window any message marker to which the message link refers.
 37. The process of claim 35 wherein the synchronizing step comprises displaying in a second display window any message marker to which the message link refers.
 38. A demand-based messaging program operable on a data processing machine, the program comprising: means for accepting message data from a user and displaying the message data on an output device; means for inserting and deleting a message marker in the message data; means for transferring the message data from the data processing machine to a second data processing machine; and means for displaying the message data on an output device operably connected to the second data processing machine.
 39. The demand-based messaging program of claim 38 further wherein the means for displaying the message data comprises rendering the message data in a display window of a graphical user interface.
 40. The demand-based messaging program of claim 39 further comprising means for inserting and deleting a message link in the message data, wherein the message link refers to any message marker stored in the second data processing machine.
 41. The demand-based messaging program of claim 40 further comprising means for synchronizing the message data displayed on the output device with any message marker to which the message link refers.
 42. The demand-based messaging program of claim 41 wherein the means for synchronizing comprises displaying any message marker to which the message link refers in the display window.
 43. The demand-based messaging program of claim 41 wherein the means for synchronizing comprises displaying any message marker to which the message link refers in a second display window. 